home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / dsp / dsp56k / a56-1_0.lha / a56-1.0 / README < prev    next >
Text File  |  1993-08-09  |  3KB  |  93 lines

  1.  
  2.   a56 - a DSP56001 assembler - version 1.0
  3.  
  4. /*
  5.  * Copyright (C) 1990, 1991 Quinn C. Jensen
  6.  *
  7.  * Permission to use, copy, modify, distribute, and sell this software
  8.  * and its documentation for any purpose is hereby granted without fee,
  9.  * provided that the above copyright notice appear in all copies and
  10.  * that both that copyright notice and this permission notice appear
  11.  * in supporting documentation.  The author makes no representations
  12.  * about the suitability of this software for any purpose.  It is
  13.  * provided "as is" without express or implied warranty.
  14.  *
  15.  */
  16.  
  17. OVERVIEW
  18.  
  19. This program was written as a vehicle to learn the intricacies
  20. of the DSP56001 instruction set, and to provide a tool for Unix-based
  21. DSP code development (for those of us without a NeXT machine.)
  22.  
  23. The intent was to provide compatibility with Motorola assembler's syntax.
  24. But since the author did not have Motorola's assembler or its documentation,
  25. it is no doubt far from compatible.  Only a few pseudo-ops are implemented--
  26. probably only partially.
  27.  
  28. Macros are not supported, except through the use of an external macro
  29. preprocessor, such as /lib/cpp.  Multiple statements on a single input line
  30. are delimited with an '@'.
  31.  
  32. SUPPORTED PSEUDO-OPS
  33.  
  34. The following is a list of the pseudo-ops that are recognized:
  35.  
  36.     <symbol> = <expression>                ;assign a symbol
  37.     
  38.     ORG <space:> <expression>            ;new location pointer
  39.     ORG <space:> <expression>, <space:> <expression>
  40.  
  41.     DC <dc_list>                    ;declare constants
  42.  
  43.     PAGE <number>, <number>, <number>, <number>    ;ignored
  44.  
  45.     INCLUDE <file>                    ;file inclusion
  46.  
  47.     END                        ;end
  48.  
  49. In addition, a "PSECT" pseudo-op was implemented.  It allows program sections
  50. to be defined and bopped in and out of, each with its own location counter and
  51. space.  The Motorola assembler probably does not have this pseudo-op, but no
  52. doubt supports the concept in some way.
  53.  
  54.     PSECT <name> <space:><begin_addr>:<end_addr>    ;define
  55.  
  56.     PSECT <name>                    ;switch to psect <name>
  57.  
  58.  
  59. FUTURE DIRECTION
  60.  
  61. The assembler probably generates bogus code here and there, and no doubt
  62. does not handle all of the syntax.  I welcome all comments, fixes and 
  63. enhancements.  My desire is to make this assembler support all of the syntax
  64. needed by Andrew Sterian's GNU C-compiler for the 56k, recently posted
  65. on alt.sources.
  66.  
  67. TO MAKE AND USE
  68.  
  69. Type "make".  gram.c and lex.yy.c are provided for those without yacc
  70. (or bison) and/or lex.
  71.  
  72. The resulting program, a56, is used as follows:
  73.  
  74.     a56 [-b] file [...]
  75.  
  76. An assembler listing is sent to the standard-output and an ascii-formatted
  77. object file (a56.out) is produced.  The "-b" option adds binary to the listing.
  78. A separate program, toomf, converts a56.out into "OMF" format suitable for 
  79. downloading to the 56001 via the sloader.a56 program.
  80.  
  81.     toomf < a56.out > file.omf
  82.  
  83. AUTHOR
  84.  
  85. 11/28/91
  86.  
  87. Quinn C. Jensen
  88. 1374 N 40 E
  89. Orem, UT  84057
  90.  
  91. work: jensenq@npd.novell.com    801-429-3170
  92. home: jensenq@qcj.icon.com
  93.